// index.js
// 获取应用实例
const app = getApp()

Page({
  data: {
    metroLines: [],
    translateX: 0,
    rotateDeg: 0,
    sensitivity: 150, // 更高灵敏度
    rotateSensitivity: 5,
    maxLeft: 0,
    maxRight: 0
  },
  
  onLoad: function () {
    // 从全局数据中获取地铁线路信息
    this.setData({
      metroLines: app.globalData.metroLines
    })

      // 1. 基础库2.20.1+使用wx.getSystemSetting获取系统设置（替代部分废弃接口）
    wx.getSystemSetting({
      success: (res) => {
        // 检查传感器是否可用（新增：提前判断设备支持性）
        if (!res.accelerometerAvailable) {
          wx.showModal({
            title: '提示',
            content: '当前设备不支持加速度计，无法使用该功能',
            showCancel: false
          });
          return;
        }

        // 2. 获取屏幕信息（仍使用wx.getSystemInfoSync，此接口未废弃）
        const { screenWidth, windowWidth } = wx.getSystemInfoSync();
        
        // 优化滚动范围计算（几乎贴边）
        const usableWidthRpx = (windowWidth / 750 * screenWidth) * 0.95; // 95%屏幕宽度可用
        const logoWidthRpx = 120;
        const maxScrollRpx = (usableWidthRpx - logoWidthRpx) / 2;
        
        this.setData({
          maxLeft: maxScrollRpx,
          maxRight: -maxScrollRpx
        });

        // 3. 启动加速度计
        this.startAccelerometer();
      },
      fail: (err) => {
        console.error('获取系统设置失败', err);
      }
    });
  },

  // 启动加速度计的封装方法
  startAccelerometer() {
    wx.startAccelerometer({
      interval: 'game',
      success: () => {
        this.accelerometerListener = wx.onAccelerometerChange((res) => {
          // 计算位移（进一步放大倾斜影响）
          let newTranslate = res.x * this.data.sensitivity;
          
          // 边缘限制
          if (newTranslate > this.data.maxLeft) {
            newTranslate = this.data.maxLeft;
          } else if (newTranslate < this.data.maxRight) {
            newTranslate = this.data.maxRight;
          }

          // 旋转角度
          const newRotate = newTranslate * this.data.rotateSensitivity;

          this.setData({
            translateX: newTranslate,
            rotateDeg: newRotate
          });
        });
      },
      fail: (err) => {
        console.error('加速度计启动失败', err);
        wx.showModal({
          title: '权限不足',
          content: '请在手机设置中开启传感器权限',
          showCancel: false
        });
      }
    });
  },
  // 页面隐藏/卸载时停止监听
  // 页面隐藏/卸载时停止监听
  onHide() {
    this.stopListener();
  },
  onUnload() {
    this.stopListener();
  },
  stopListener() {
    wx.stopAccelerometer();
    if (this.accelerometerListener) {
      this.accelerometerListener();
    }
  },
  
  // 跳转到线路详情页
  goToLineDetail: function(e) {
    const lineId = e.currentTarget.dataset.id
    wx.navigateTo({
      url: '../lineDetail/lineDetail?id=' + lineId
    })
  },
  // 点击头像触发动画
  triggerAnimation() {
    // 防止重复点击（动画执行中不响应新点击）
    if (this.data.isAnimating) return;
    // 添加动画类，开始动画
    this.setData({ isAnimating: true });
    // 动画时长4秒，结束后重置状态（确保下次可再次触发）
    setTimeout(() => {
      this.setData({ isAnimating: false });
    }, 4000); // 时间需与WXSS中animation的4s保持一致
  }
})

